Method of managing a calendar and a computer system for implementing that method

ABSTRACT

Methods, systems and machine readable media for operating a calendar in a data processing system. In one exemplary method of managing a calendar, which contains at least one event, said method comprises: making available the calendar in an electronic format; subscribing to said calendar; downloading said calendar from a host electronic device to a subscriber electronic device; and storing said calendar in said electronic format to form a local calendar.

This application is related to and hereby claims the benefit of thefiling date of U.S. Provisional Patent Application Ser. No. 60/406,521filed Sep. 9, 2002, which application is hereby incorporated herein byreference.

The present invention relates to a method of managing a calendar and acomputer system for implementing that method.

In the last fifty years, the pace of life and complexity for theconsumer has increased considerably. Hitherto, many consumers merelyrequired a simple manuscript diary or calendar to organise the variouscommitments and events occurring in their life. In due course, thecomplexity of life has necessitated improved organisation of themultitude of events occurring across many different areas of a consumerslife. This has resulted in many instances of electronic devices beingused with electronic calendar facilities provided.

A consumers life is typically demarcated by events occurring at work,those at home and those socially. Being advised of the various eventsand managing a calendar to organise those events is very difficult. Todate, new events are often advised by manuscript publications or overthe Internet. However, such new events need to be entered on theconsumers chosen electronic calendar or each electronic calendar.Entering of those events is very time consuming, leads to errors and caneasily overwhelm the ease of using the electronic calendar.

SUMMARY OF THE DESCRIPTION

Certain embodiments of the present invention relate to a method ofmanaging a calendar, said calendar containing at least one event, saidmethod comprising:

-   -   making available the calendar in an electronic format;    -   subscribing to said calendar;    -   downloading said calendar from a host electronic device to a        subscriber electronic device; and    -   storing said calendar in said electronic format to form a local        calendar.

Also the present invention provides a computer system having a hostelectronic device and at least one subscriber device and a computerprogram arranged for implementing such a method.

The foregoing method is facilitated, in one exemplary embodiment,through the use of a computer program operative on a computer such asone of the Macintosh personal computers from the applicant, AppleComputer Inc. of Cupertino, Calif., USA. More preferably the computerprogram is operative in the MacOS×version 10.2, known as Jaguar(Registered Trade Mark). Moreover, the computer program is complementaryto Mail and Address Book computer applications also available from Applefor full personal information management. The computer program of thisparticular embodiment is compatible with printing applications andfunctions.

In addition, the computer program of this particular embodiment iscompliant with standards for calendaring applications such as iCal andvCal (both Registered Trade Marks) and allows import of data from otherapplications like Entourage (Registered Trade Mark) available fromMicrosoft. Further details can be obtained fromhttp://www.imc.org/draft-ietf-calsch-inetcal-guide. The computer programof this particular embodiment is also compatible with the iTools webservice available from Apple in order to share calendar data easily overthe Internet.

In view of the compatibility discussed above and in particular with theoperating system, the computer program of this particular embodimentenables copy and paste with other applications, drag and dropfacilities, use of the spellchecker, integration with email applicationsand integration with address applications for management of personalinformation.

Thus, the present invention provides, in certain embodiments, a methodfor enabling a user to publish his or her calendar to other users andthe user can subscribe to other calendars thereby coordinating ormanaging events of one user with those of another.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described by way offurther example only and with reference to the accompanying drawings, inwhich:

FIG. 1 is a schematic illustration of one embodiment of the presentinvention;

FIG. 2 is a schematic diagram of a flow chart for changing an event of apublished calendar according to the present invention;

FIG. 3 is a diagram of a user interface according to the presentinvention;

FIG. 4 is a diagram of the user interface according to the presentinvention illustrating two situations, one displaying events from twocalendars and the other displaying events from only one calendar;

FIG. 5 is a diagram of a user interface according to the presentinvention illustrating a different data range as the primary date range;

FIG. 6 is a diagram of a user interface according to the presentinvention illustrating the display of events;

FIG. 7 is a diagram of a user interface according to the presentinvention illustrating to do items;

FIG. 8 is a diagram of a user interface according to the presentinvention illustrating a search result window;

FIG. 9 is a diagram of a user interface according to the presentinvention illustrating overlapping events;

FIG. 10 is a diagram of part of a user interface according to thepresent invention illustrating said overlapping events in more detail;and

FIG. 11 is a diagram of a publish interface for publishing one of thecalendars.

DETAILED DESCRIPTION

Embodiments of the present invention relate to calendar operations on adata processing system. A data processing system which may be used withembodiments of the invention typically include a display for displayinga calendar interface and a processor for controlling the display and aninput device. Examples of such data processing systems include generalpurpose computers or special purpose computers or personal digitalassistants or cellular telephones. Examples of data processing systemsare shown and described in U.S. Pat. No. 6,222,549 which is herebyincorporated herein by reference. Often, the data processing system willinclude a memory for storing software (e.g. computer program)instructions. Embodiments of the invention may be embodied, at least inpart, in software. That is, the techniques may be carried out in acomputer system or other data processing system in response to itsprocessor, such as a microprocessor, executing sequences of instructionscontained in a memory, such as ROM, volatile RAM, non-volatile memory,cache or a remote storage device (addressable through a network). Invarious embodiments, hardwired circuitry may be used in combination withsoftware instructions to implement the present invention. Thus, thetechniques are not limited to any specific combination of hardwarecircuitry and software nor to any particular source for the instructionsexecuted by the data processing system. In addition, throughout thisdescription, various functions and operations are described as beingperformed by or caused by software code to simplify description.However, those skilled in the art will recognize what is meant by suchexpressions is that the functions result from execution of the code by aprocessor, such as the microprocessor of a data processing system.

A machine readable media can be used to store software and data whichwhen executed by a data processing system causes the system to performvarious methods of the present invention. This executable software anddata may be stored in various places including for example ROM, volatileRAM, non-volatile memory and/or cache. Portions of this software and/ordata may be stored in any one of these storage devices.

Thus, a machine readable media includes any mechanism that provides(i.e., stores and/or transmits) information in a form accessible by amachine (e.g. a computer, network device, personal digital assistant,manufacturing tool, any device with a set of one or more processors,etc.). For example, a machine readable media includesrecordable/non-recordable media (e.g. read only memory (ROM); randomaccess memory (RAM); magnetic disk storage media; optical storage media;flash memory devices; etc.) as well as electrical, optical, acousticalor other forms of propagated signals (e.g. carrier waves, infraredsignals, digital signals, etc.); etc.

FIG. 1 relates to a first embodiment of the present invention. There isillustrated schematically a computer server 2 on which is stored acalendar 4 containing at least one event. A number of subscriberelectronic devices 6 a, 6 b etc are each connected to the server 2. Inthe preferred embodiment, the computer server is provided over theInternet and the subscribers are computers connected intermittently tothe server. Alternatively, the server could comprise a local areanetwork to which the subscribers are connected permanently. Theelectronic devices could comprise any form of electronic device such asa notebook or laptop computer, personal digital assistant, mobiletelephone, palm device etc.

The server 2 has stored thereon the calendar of events 4. The calendar 4is downloaded and stored on each of the subscribers to form a localcalendar 8 a, 8 b etc. The local calendar is stored in the sameelectronic format as on the server. The preferred embodiment enables thelocal calendar to be stored with a subscriber calendar 10 a, 10 b etc.In particular, the local calendar and the subscriber calendar both sharethe same user interface as described subsequently.

The present invention may also include a viewer electronic device 12. Aviewer 12 may access the calendar stored on the server but may notdownload the same to form a local calendar. In order for a viewer tobecome a subscriber, the viewer may have to pay a subscriber fee.

A viewer electronic device may comprise any of the same subscriberelectronic devices, for example a notebook or laptop computer, personaldigital assistant, mobile telephone, palm device etc and be connected inany of the arrangements as discussed for a subscriber. Depending uponthe electronic device involved any suitable electronic connection may bemade as is well known in the art including USB, serial ports, firewire,bluetooth, infrared and over the Internet.

The preferred embodiment also enables a subscriber 6 b to publish theirlocal calendar 10 b to the server 2 or for viewing by a viewer 12.Another subscriber, such as 6 a may download the published localcalendar 10 b to form a local subscriber calendar 10 a/b. The viewer mayview the local calendar stored on the server 10 b or directly ifconnected to the subscriber.

The subscribers may also be connected directly. In this case, asubscriber 6 a may publish the local calendar 10 a to the othersubscriber 6 b which is then stored to form a local subscriber calendar10 b/a stored on subscriber 6 b.

The present invention provides for any number of calendars to beprovided by the server or any number of electronic devices eithersubscriber or viewer to be included.

Many calendars are not static. Static calendars include those relatingto national holidays, birthdays, daylight saving transition dates, tidedata etc. However, many calendars are not static and events need to beadded, modified or deleted. All of these are termed as changes. FIG. 2illustrates schematically changes to be effected on a calendar which ispublished.

In the first instance a change may be made to a calendar in operation20. If the change occurs on a calendar 4 stored on the server 2, theneach subscriber 6 a, 6 b, downloads the change in operation 22 and thelocal calendar 8 a, 8 b is updated in operation 24. If the change occurson a local calendar 10 a stored on a subscriber, then the calendar, ifsent directly to another subscriber 6 b, is downloaded by the subscriber6 b and the local subscriber calendar 10 b/a is updated. If the localcalendar 10 b is published on the server 2, then the local calendar 10 bis republished in operation 26. The other subscriber 10 a, downloads therepublished calendar 10 b and updates the local subscriber calendar 10a/b stored thereon.

The preferred embodiment also provides for a dialog between usersoperating the subscriber devices in order to confirm, disagree or amendany changes. A user of one of the subscribers may send a notification tothe other subscriber in operation 28. The recipient subscriber may replyto confirm the change in operation 30. The change is then effected onthe calendar and the change implemented on the local calendar asdiscussed above. The recipient subscriber may reply to disagree or amendthe proposed change in operation 32. The subscriber and recipient mayconduct this dialog between notifying 28 and replying 32 until a replyto confirm 30 is received. The change is then effected as discussedabove.

The server or subscriber generating the calendar 4, 10 a or 10 b mayprovide for the recipient subscriber to view the calendar only or effectchanges. Other preferences may be determined by the server orsubscriber. Such preferences include the time period between makingchanges to the calendar and downloading those changes. Other preferencesinclude merely notifying a user of a subscriber of a change. All suchpreferences are facilitated through the use of a user interface.

The present invention thus enables events from more than one calendar tobe disseminated and organised in a method which is more manageable. Inparticular, events do not need to be re-entered onto the userselectronic calendar thereby avoiding errors and the user can selectivelychoose events from certain calendars to be included in their localcalendar. Moreover, the method provides for changes being effected and adialog between at least two users for confirming on changes to be made.

The present invention of managing a calendar is particularly suited forimplementation by a computer program comprising a plurality of calendarsas described in our other co-pending U.S. patent application filedcontemporaneously by the same inventors and entitled “A Computer ProgramComprising A Plurality Of Calendars,” attorney docket no. 04860.P2996.For the sake of completeness, a description of this computer program isprovided hereafter even though this other application is incorporatedherein by reference.

The present invention includes a computer program having a userinterface providing an interface for two or more calendars and theevents from the two or more calendars may be selectively displayedsimultaneously in a single calendar interface. FIG. 3 is a diagram ofsuch a user interface 200. The user interface includes a number ofwindows 400, 600 and 800. Window 400 is titled “My Calendars”. FIG. 3illustrates the use of the user interface with two calendars, namely“Home” and “Work”. The names of the calendars are displayed in the “MyCalendars” window. Preferably, the calendars “Home” and “Work” arecreated by default. Other calendars may be included, especially publicevent calendars.

Window 600 comprises a primary date range. In FIGS. 3 and 4, the primarydate range comprises a day with a data field for each hour. In FIG. 3,the primary date range is a month. Needless to say, the primary daterange may be weekly or daily or another period of time. A selector 1000in the user interface enables a user to select which primary date rangeto display.

The primary date range includes a data field for each unit of theprimary date range. That is to say, in the daily date range, the datafields are hours, in the weekly date range, the data fields are days orhours, in the monthly date range, the data fields are days or hours andin the yearly date range, the data fields are months, weeks, days orhours. As shown in FIG. 3, the data fields may display sub-fields foreach hour of the day when the primary date range is monthly. Similarly,in the yearly date range, each data field may display sub-fields foreach day. In the daily date range, the preferred embodiment of thecomputer program displays only some of the hours available.

Window 800 enables a subsidiary date range to be displayed. In FIGS. 3and 4, the subsidiary date range is monthly. A marker 1200, enables theday selected in the primary date range to be indicated in the subsidiarydate range. For example, Tuesday Feb. 5, 2002 is shown in the primarydate range and this day is indicated by the marker in the subsidiarydate range which displays February 2002.

The user interface provides a toggle or control interface 1400 for eachcalendar. The user interface indicates to the user that the toggle isactivated when a tick or check mark appears next to the name of thecalendar. If a toggle is activated, then the events from the respectivecalendar are displayed by the user interface, typically by displayingthe events in a calendar interface such as a daily or weekly or monthlyview. FIG. 4 illustrates two situations for the user interface. Onesituation has the user interface displaying events from two calendars,namely “Home” and “Work” whereas the other situation has the userinterface displaying events from only one calendar, namely “Home”. Forexample, in the first situation in FIG. 4, there is an event occurringat 10 am, namely “Meeting” which is not displayed in the other situationsince this event only appears in the calendar “Work” which is notactivated.

The present invention thus enables a user to manage all of the requiredcalendars using a computer program having a single user interface andall of the two or more calendars may be calendars for the same userdisplaying events, meetings, etc. for that user. The user interfacesignificantly enhances the management of the events occurring over aplurality of calendars. Thus, when checking availability of a new event,a user merely needs to activate all of the relevant calendars (leavingthe other calendars not activated), and the events in all the relevant(activated) calendars are all displayed and a user can easily confirmwhether there is availability. Conversely, when considering just onecategory of events, a user merely needs to deactivate the redundantcalendars and activate only the one relating to the particular category.The user interface thus very efficiently manages the calendars on theone hand by combining all of the calendars and yet allows flexibility tofocus on one or a few calendars to minimise confusion and reducecomplexity.

FIGS. 6 to 9 illustrate an embodiment of the present invention. In FIGS.6 to 9, window 800 displays more than one month as the subsidiary daterange. Moreover, the marker 1200, indicates a selected week. Window 600comprises the primary date range of a week with hourly data fields foreach day of the week. The user interface indicates a particular day inthe primary date range and a detailed marker 1600 in the subsidiary daterange indicates the same day. For example, Tuesday 27th Aug. 2002 ishighlighted in the primary date range and the detailed marker indicatesthe same day and this is distinguished from the marker 1200 in thesubsidiary date range.

FIG. 6 illustrates an event, namely “My Event”. The event is displayedas a 2-D shape, namely a rounded rectangle. The 2-D shape has boundarieswhich are approximately contiguous with the specified duration, namely 9am to 1 p.m.

In order to minimise confusion, only one of the calendars is selectedfor editing at any one time. Thus, a user selects a calendar of mostimportance in the hierarchy of all of the calendars. This is indicatedby highlighting in the user interface. For example, as shown in FIG. 6,the calendar “lala” is highlighted, thereby indicating that as the mostimportant calendar.

When a user wishes to add, select, modify or delete an event, the usermay highlight the event and double click. An interrogator interface 2000is activated and displayed. The date of the event and duration aredisplayed as shown at 2200. Changes can be made using the arrows. Thecalendar from which the event is taken is also displayed at 2400. Theevent may be moved from one calendar to another by changing theassociated calendar appearing at 2400. The details of the event aredisplayed at 2600. Not only may the event be changed but also propertiesassociated with the event may be changed. For example, an alarm may beindicated and/or selected at 2800. When the alarm is due, any knowncomputer program alarm may be provided such as an audio or visualannouncement. A shortcut 3000 may be activated to set the duration asthe whole day or other duration depending upon the primary date rangeused. Another property is to set the event as recurring. A recurringevent may comprise for example Birthdays, anniversaries, regularappointments etc.

The user interface shown in FIG. 6 also includes an additional window4000. Window 4000 is entitled “To Do items”. To do items include thosetasks for which a specific time is not required but set for a particularday, week, month or year, depending upon the primary date rangeselected. In FIG. 6, the primary date range is weekly and the to doitems are noted for a particular day. To do items can be displayed suchas that shown in FIG. 7. The to do items may be implemented in a“Franklin Covey mode”.

FIG. 8 illustrates a user interface with an additional window 5000.Window 5000 provides another subsidiary date range, in this case weekly.The events occurring in window 5000 are generally of a day longduration. Such a display is particularly useful when displaying user'sholidays or national holidays or other events of a day duration such asBirthdays. Those events are indicated by a 2-D rectangular shape withrounded corners at the extremities of the duration. Such events aretermed banners. A banner may also be used to display a weekend orholiday period. The computer program is able to display such a bannerwith rectangular corners at the extremity of the duration when theshortcut 3000 is activated.

The computer program of the present invention also provides for searchesto be effected. The searches are facilitated by search interface 6000. Astring of characters is entered into the search interface. A search isconducted across selected calendars and the search results are displayedin a search result window 6200. For example in FIG. 8, the search string“acan” was entered and various entries identified and displayed. Thesearch interface also enables each of the events presented thereby to beviewed and/or changed and selecting one of the results in the searchinterface for changing may produce the interrogator interface asdiscussed above.

As discussed above, events from each toggled calendar are displayed bythe user interface. FIG. 9 illustrates the user interface wherebyseveral calendars are toggled, namely “US Holidays 2”, “lala”, “JewishHolidays”, “testpub” and “VacancesG5”. The events are shown in theprimary date range. It is not uncommon for events to conflict. Thus, adistinguishing feature is provided to distinguish between conflictingevents. The distinguishing feature may comprise a different colour, theshape of the event being displayed differently and/or one of the eventsbeing translucently displayed. When colour is used, the name of thecalendar and each of the events or their shape take the same colour.

In FIG. 9, there are two conflicting events which overlap between 11.30am and 1 p.m. The events are displayed in a translucent manner and withtheir shape reduced such that the lateral boundary does not extend thefull width of the day data field. FIG. 10 illustrates this in moredetail. In this case, there are two conflicting events with the evententitled “New event” at 10.30 am. The other events “New event” at 9.15am and “envoyer list bug” are reduced in size and aligned with the leftperimeter of the day data field whereas the event “New event” at 10.30am is reduced in size and aligned with the right perimeter of the daydata field. Moreover, event “New event” at 1030 am is made translucentso that event “New event” at 9.15 am can be seen there through and event“envoyer list bug” is overlaid.

Finally, FIG. 11 illustrates a publish interface for facilitating thepublication of the selected calendar. In the publish interface, one ofthe calendars is selected at 9000. A user may set preferences associatedwith the selected published calendar. For example, all changes effectedon the calendar are published automatically at 9200. All notes andevents are included at 9400. Any alarms set can also be included or notin the published calendar at 9500 since these may not be relevant to asubscriber. Similarly any to do items can be included or not in thepublished calendar at 9600. Finally, the publish interface enables thecalendar to be published either over the Internet or on a server at9700. Confirmation or cancellation can be effected via buttons 9800.Finally, a status of the publication is indicated at 9900.

Two features of embodiments of the present invention are the instantaccess to data and the natural selection and visualisation of othersources of events. The present invention may contain a large multitudeof events, in particular because of its ability to include manycalendars within a calendar interface for a user. Thus, it becomescritical for a user to quickly and easily find relevant data in a givencontext. For example, during work hours, a user must be able to easilyfind meetings concerning a given project, by selecting only the workcalendar and searching for the given project. However, at home, the sameuser, with the same computer program and user interface must have a wayto easily find social details such as the soccer matches for any giventeam, again through selecting only the relevant calendars and searchingfor the given team. The user is thus provided with a live textual searchsystem and related navigational facilities.

Embodiments of the present invention thus achieve the objectives ofenabling a user to manage all of the required calendars using a computerprogram having a single user interface. The user interface significantlyenhances the management of the events occurring over a plurality ofcalendars. Thus, when checking availability of a new event, a usermerely needs to activate (e.g. “toggle”) all of the relevant calendars,whose events are all displayed and a user can easily confirm whetherthere is availability. Conversely, when considering just one category ofevents, a user merely needs to deactivate (e.g. “de-toggle”) theredundant calendars and activate only the one relating to the particularcategory. The user interface thus very efficiently manages the calendarson the one hand by combining all of the calendars and yet allowsflexibility to focus on one or a few calendars to minimise confusion andreduce complexity.

To enhance the security of data integrity and reduce complexity, it ispreferred that data involved in the computer program is alwayssynchronised across various electronic devices. A method ofsynchronising three or more electronic devices is described in one ofour other co-pending applications filed on the same day by the sameinventors and entitled “A Method Of Synchronizing Three Or MoreElectronic Devices And A Computer System For Implementing That Method,”attorney docket no. 04860.P2998, which application is herebyincorporated herein by reference.

The foregoing description has been given by way of example only and itwill be appreciated by a person skilled in the art that modificationscan be made without departing from the scope of the present invention.

1. A method of managing a calendar, said calendar containing at leastone event, said method comprising: making available the calendar in anelectronic format; subscribing to said calendar; downloading saidcalendar from a host electronic device to a subscriber electronicdevice; and storing said calendar in said electronic format to form alocal calendar.
 2. A method as claimed in claim 1, in which said makingavailable said calendar comprises publishing said calendar over theInternet.
 3. A method as claimed in claim 1, further comprising: makingchanges to the events in said calendar; downloading said changes fromthe host electronic device to said subscriber device; and updating thelocal calendar stored on said subscriber electronic device with saidchanges.
 4. A method as claimed in claim 3, further comprising:notifying a user of the subscriber electronic device of said changes. 5.A method as claimed in claim 1, further comprising: notifying a user ofone of the devices of a new event or change to one of the events;replying to said notification to confirm said new event or change;making said change to either said calendar or said local calendar;downloading said change from the updated device to the other device; andupdating the other calendar stored on the other device.
 6. A method asclaimed in claim 5, after said step of notifying a user, furthercomprising: replying to said notification to disagree or amend said newevent or change; and re-notifying said user to confirm or amend saidnotification.
 7. A method as claimed in claim 3, in which there are aplurality of subscriber electronic devices.
 8. A method as claimed inclaim 3, in which said subscriber electronic device includes at leastone subscriber calendar and said local calendar is stored with saidsubscriber calendar.
 9. A method as claimed in claim 8, in which saidsubscriber calendar and said local calendar share a user interface. 10.A computer system having a host electronic device and at least onesubscriber device and a computer program arranged for implementing amethod as claimed in claim
 1. 11. A computer system as claimed in claim10, in which the or each subscriber electronic device includes at leastone subscriber calendar and said local calendar is stored with saidsubscriber calendar.
 12. A computer system as claimed in claim 11, inwhich the or each said subscriber calendar and said local calendar sharea user interface.
 13. A computer system as claimed in claim 12, in whichsaid user interface comprises more than one window.
 14. A computersystem as claimed in claim 13, in which one of said windows comprises aprimary data range.
 15. A computer system as claimed in claim 14, inwhich said primary date range contains a data field for each day of amonth.
 16. A computer system as claimed in claim 14, in which saidprimary date range contains a data field for each day of a week.
 17. Acomputer system as claimed in claim 14, in which said primary data rangecontains a data field for each month of a year.
 18. A computer system asclaimed in claim 14, in which said primary date range contains a datafield for each of a plurality of hours of a selected day.
 19. A computersystem as claimed in claim 18, in which another of said windowscomprises a subsidiary date range comprising at least one month andincluding a marker for indicating the selected day.
 20. A computersystem as claimed in claim 18, in which another of said windowscomprises a second subsidiary date range comprising at least one weekand including a secondary marker for indicating the selected day.